let connections=[];//存储所有连接到共享工作者的端口

//接收来自页面的连接请求
onconnect=function(e){
    const port=e.ports[0];//获取连接的 messagePort
    console.log('端口列表',e.ports);
    connections.push(port)
    //监听来自页面的消息
    port.onmessage=function(event){
        const message=event.data;
        //将接受到的消息广播给所有连接的页面
        connections.forEach(connectionPort=>{
            if(connectionPort!==port){//不将消息发送给发送者
                connectionPort.postMessage(`来自其他页面的消息：${message}`)
            }
        });
    };

    //断开连接时，移出连接的端口
    port.onclose=function(){
        connections=connections.filter(conn=>conn!==port);
    }
}